package com.cheejee.goodscenter.service;

import javax.validation.constraints.NotNull;

import org.springframework.validation.annotation.Validated;

import com.cheejee.goodscenter.module.entity.Category;
import com.github.pagehelper.Page;

/**
 * @author CARRY
 * @Date 2020年10月22日下午10:29:57
 */
@Validated
public interface CategoryService {

	/**
	 * 按指定条件查询分类，多个条件and连接。条件全为空则查询全部分类。
	 *
	 * @param parentId 父级id
	 * @param name 名称
	 * @param level 级别，1-3
	 * @return
	 */
	Page<Category> queryCategory(Integer parentId, String name, Byte level, int pageNum, int pageSize);
	
	/**
	 * 按分类id获取分类
	 *
	 * @param id
	 * @return
	 */
	Category queryCategoryById(@NotNull(message = "分类id不能为空") Integer id);
	
	/**
	 * 添加分类，通过父级计算出分类级别。
	 *
	 * @param parentId 父级id，0 为一级分类
	 * @param name 分类名称
	 * @return
	 */
	int addCategory(@NotNull(message = "新增的分类不能为空") Category category);
	
	/**
	 * 修改分类
	 *
	 * @param category
	 * @return
	 */
	int changeCategory(@NotNull(message = "修改的分类不能为空") Category category);
	
	/**
	 * 删除分类，分类下还有商品则不能删除。
	 *
	 * @param id
	 * @return
	 */
	int deleteCategory(@NotNull(message = "删除的分类id不能为空") Integer...id);
}
